使用多击操纵器可以使用户在 Kanzi 应用程序中多击或多敲节点。请参阅为节点启用多击手势。
使用多击 (Multi Click) 触发器响应多击手势。例如,您可以更改用户多击或多敲节点时的节点外观。请参阅使用多击 (Multi Click) 触发器。
多击操纵器是一种输入操纵器,您可以用于在 Kanzi 应用程序中添加手势识别到节点上。您可以通过 Kanzi Engine API 分配输入操纵器。请参阅使用输入操纵器。
要为节点启用点击手势,使用点击操纵器。请参阅使用点击操纵器。
通过完成教程学习如何使用多击操纵器。请参阅教程:平移、缩放、轻敲。
本节介绍了如何为任意节点启用多击手势。要为按钮 (Button) 节点启用双击,请参阅为按钮 (Button) 节点启用双击手势。
要为节点启用多击手势:



# 符号后跟别名名称访问别名目标节点。


private:
//为 MultiClickManipulator::MultiClickMessage 消息定义处理程序,该消息来自
//具有可生成多击消息的输入操纵器的节点。
void onNodeMultiClicked(MultiClickManipulator::MultiClickMessageArguments& messageArguments)
{
//添加处理多击事件的代码。
}onProjectLoaded() 函数中创建 MultiClickManipulator 操纵器并订阅其消息。 virtual void onProjectLoaded() KZ_OVERRIDE
{
ScreenSharedPtr screen = getScreen();
Domain* domain = getDomain();
//使用别名获取MultiClickNode 节点。
NodeSharedPtr multiClickNode = screen->lookupNode<Node>("#MultiClickNode");
//创建生成多击消息的输入操纵器。
MultiClickManipulatorSharedPtr multiClickManipulator = MultiClickManipulator::create(domain);
//添加输入操纵器到MultiClickNode 节点。
multiClickNode->addInputManipulator(multiClickManipulator);
//将预期点击次数设置为三。默认预期点击次数为二。
//输入操纵器将此点击数识别为多击手势。
multiClickManipulator->setExpectedClicks(3);
//将多击超时设置为 500 ms。默认超时为 250 ms。
//如果每次点击之间的时间未超出该值,
//输入操纵器将这些点击识别为多击手势。
multiClickManipulator->setTimeout(chrono::milliseconds(500));
//订阅MultiClickNode 节点的 MultiClickManipulator::MultiClickMessage 消息。
// MultiClickManipulator 操纵器在用户多击节点时生成此消息。
multiClickNode->addMessageHandler(MultiClickManipulator::MultiClickMessage, bind(&MyProject::onNodeMultiClicked, this, placeholders::_1));
}MultiClickMessage 消息定义的行为。使用多击 (Multi Click) 触发器响应多击手势。例如,您可以更改用户多击或多敲节点时的节点外观。
要使用多击 (Multi Click) 触发器:



有关详细信息,请参阅 API reference中的 MultiClickManipulator 类。